library_load <- suppressMessages(
list(
# Seurat
library(Seurat),
library(monocle3),
# SingleR
library(SingleR),
library(SingleCellExperiment),
# Data
library(tidyverse)
)
)
random_seed <- 42
set.seed(random_seed)
options(warn=-1)
# Set working directory to project root
setwd("/research/peer/fdeckert/FD20200109SPLENO")
# Source files
source("plotting_global.R")
source("bin/SeuratQC.R")
source("bin/plotDEA.R")
source("../scFacility/script/dirFacility.R")
# Plotting Theme
ggplot2::theme_set(theme_global_set()) # From project global source()
so_file <- "data/object/so_sct_int_hvg8000.rds"
so_pp_file <- "data/object/so_pp.rds"
so <- readRDS(so_file)
DefaultAssay(so) <- "integrated"
so <- FindNeighbors(so, dims=1:10, k.param=50, verbose=FALSE)
so <- FindClusters(so, verbose=FALSE, resolution=0.5, algorithm=1, group.singletons=TRUE)
so <- RunUMAP(so, dims=1:15, n.neighbors=80, verbose=FALSE)
options(repr.plot.width=22.5, repr.plot.height=20)
dplot_1 <- dplot(so, reduction="umap", group_by="seurat_clusters", label=TRUE) + ggtitle("Louvain")
dplot_2 <- dplot(so, reduction="umap", group_by="tissue") + scale_color_manual(values=color$tissue) + ggtitle("Tissue")
dplot_3 <- dplot(so, reduction="umap", group_by="cc_phase_class") + scale_color_manual(values=color$cc_phase_class) + ggtitle("Cell cycle")
dplot_4 <- dplot(so, reduction="umap", group_by="label_fine_haemosphere") + scale_color_manual(values=color$label_fine_haemosphere) + ggtitle("Haemosphere label")
dplot_5 <- dplot(so, reduction="umap", group_by="sample_rep") + ggtitle("Replicate")
dplot_6 <- dplot(so, reduction="umap", group_by="treatment") + scale_color_manual(values=color$treatment) + ggtitle("Treatment")
fplot_1 <- fplot(so, reduction="umap", features="pMt_RNA") + ggtitle("Percentage Mt")
fplot_2 <- fplot(so, reduction="umap", features="pHb_RNA") + ggtitle("Percentage Hb")
fplot_3 <- fplot(so, reduction="umap", features="pRb_RNA") + ggtitle("Percentage Rb")
fplot_4 <- fplot(so, reduction="umap", features="nCount_RNA") + ggtitle("UMI count")
fplot_5 <- fplot(so, reduction="umap", features="nFeature_RNA") + ggtitle("Feature count")
dplot_comb <- dplot_1 + dplot_2 + dplot_3 + dplot_4 + dplot_5 + dplot_6 + fplot_1 + fplot_2 + fplot_3 + fplot_4 + fplot_5 + plot_layout(ncol=3)
dplot_comb
options(repr.plot.width=22.5, repr.plot.height=3)
DimPlot(so, reduction="umap", group.by="seurat_clusters", split.by="seurat_clusters", label=TRUE) + theme(legend.position="none")
so@meta.data %>% dplyr::group_by(seurat_clusters, treatment, sample_rep) %>%
dplyr::summarise(n=n()) %>% data.frame() %>%
tidyr::spread(seurat_clusters, n) %>%
kableExtra::kable("html") %>% as.character() %>% IRdisplay::display_html()
`summarise()` has grouped output by 'seurat_clusters', 'treatment'. You can override using the `.groups` argument.
| treatment | sample_rep | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CpG | Rep1 | 1066 | 1052 | 239 | 173 | 523 | 415 | 516 | 227 | 264 | 166 | 192 | 110 | 109 | 70 |
| CpG | Rep2 | 1248 | 1468 | 600 | 236 | 181 | 798 | 149 | 491 | 224 | 378 | 282 | 93 | 61 | 158 |
| NaCl | Rep1 | 275 | 145 | 187 | 406 | 505 | 64 | 554 | 115 | 319 | 115 | 12 | 67 | 101 | 40 |
| NaCl | Rep2 | 464 | 210 | 852 | 972 | 287 | 218 | 126 | 503 | 139 | 261 | 121 | 66 | 61 | 58 |
Marker genes are taken from Dahlin et al., 2018
DefaultAssay(so) <- "RNA"
so <- AddModuleScore(so, features=c("Procr"), name="msHSC") #Procr, Fgd5, Hoxb5
so <- AddModuleScore(so, features=c("Dntt"), name="msLy") #Dntt, Flt3, Rag2
so <- AddModuleScore(so, features=c("Cd3g", "Cd3e", "Cd3d", "Cd247"), name="msTly") #Dntt, Flt3, Rag2
so <- AddModuleScore(so, features=c("Igha"), name="msBly") #Dntt, Flt3, Rag2
so <- AddModuleScore(so, features=c("Pf4", "Itga2b", "Gp1bb"), name="msMeg") #Pf4, Itga2b, Gp1bb
so <- AddModuleScore(so, features=c("Klf1", "Epor", "Gata1"), name="msEry") #Klf1, Epor, Gata1
so <- AddModuleScore(so, features=c("Elane", "Gfi1", "Cebpe"), name="msNeu") #Elane, Gfi1, Cebpe
so <- AddModuleScore(so, features=c("Csf1r", "Ly86"), name="msMo") #Irgf8, Csf1r, Ly86
so <- AddModuleScore(so, features=c("Prg2", "Prg3"), name="msEo") #Prg2, Prg3
so <- AddModuleScore(so, features=c("Gzmb", "Cma1"), name="msMa") #Gzmb, Cma1
so <- AddModuleScore(so, features=c("Prss34", "Mcpt8"), name="msBa") #Prss34, Mcpt8
options(repr.plot.width=22.5, repr.plot.height=20)
fplot_1 <- fplot(so, reduction="umap", features="msHSC1") + ggtitle("HSC\n (Procr)") + theme(plot.title=element_text(hjust=0.5))
fplot_2 <- fplot(so, reduction="umap", features="msLy1") + ggtitle("Lymphoid\n (Dntt)") + theme(plot.title=element_text(hjust=0.5))
fplot_3 <- fplot(so, reduction="umap", features="msTly1") + ggtitle("T Lymphoid\n (Cd3, Cd247)") + theme(plot.title=element_text(hjust=0.5))
fplot_4 <- fplot(so, reduction="umap", features="msBly1") + ggtitle("B Lymphoid\n (Igha)") + theme(plot.title=element_text(hjust=0.5))
fplot_5 <- fplot(so, reduction="umap", features="msMeg1") + ggtitle("Megakaryocyte\n (Pf4, Itga2b, Gp1bb)") + theme(plot.title=element_text(hjust=0.5))
fplot_6 <- fplot(so, reduction="umap", features="msEry1") + ggtitle("Erythroid\n (Klf1, Epor, Gata1)") + theme(plot.title=element_text(hjust=0.5))
fplot_7 <- fplot(so, reduction="umap", features="msNeu1") + ggtitle("Neutrophil\n (Elane, Gfi1, Cebpe)") + theme(plot.title=element_text(hjust=0.5))
fplot_8 <- fplot(so, reduction="umap", features="msMo1") + ggtitle("Monocyte\n (Csf1r, Ly86)") + theme(plot.title=element_text(hjust=0.5))
fplot_9 <- fplot(so, reduction="umap", features="msEo1") + ggtitle("Eosinophil\n (Prg2, Prg3)") + theme(plot.title=element_text(hjust=0.5))
fplot_10 <- fplot(so, reduction="umap", features="msMa1") + ggtitle("Mast\n (Gzmb, Cma1)") + theme(plot.title=element_text(hjust=0.5))
fplot_11 <- fplot(so, reduction="umap", features="msBa1") + ggtitle("Basophil\n (Prss34, Mcpt8)") + theme(plot.title=element_text(hjust=0.5))
fplot_12 <- fplot(so, reduction="umap", features="Ms4a3") + ggtitle("GMP\n (Ms4a3)") + theme(plot.title=element_text(hjust=0.5))
dplot_comb <- fplot_1 + fplot_2 + fplot_3 + fplot_4 + fplot_5 + fplot_6 + fplot_7 + fplot_8 + fplot_9 + fplot_10 + fplot_11 + fplot_12 + plot_layout(ncol=4)
dplot_comb
options(repr.plot.width=22.5, repr.plot.height=10)
fplot_1 <- fplot(so, reduction="umap", features="Gata2") + ggtitle("Gata2")
fplot_2 <- fplot(so, reduction="umap", features="Gata1") + ggtitle("Gata1")
fplot_3 <- fplot(so, reduction="umap", features="Epor") + ggtitle("Epor")
fplot_4 <- fplot(so, reduction="umap", features="Epop") + ggtitle("Epop")
fplot_4 <- fplot(so, reduction="umap", features="Tfrc") + ggtitle("Tfrc")
fplot_5 <- fplot(so, reduction="umap", features="Tfr2") + ggtitle("Tfr2")
fplot_6 <- fplot(so, reduction="umap", features="Icam4") + ggtitle("Icam4")
dplot_comb <- fplot_1 + fplot_2 + fplot_3 + fplot_4 + fplot_5 + fplot_6 + plot_layout(ncol=3)
dplot_comb
options(repr.plot.width=22.5, repr.plot.height=20)
fplot_1 <- fplot(so, reduction="umap", features="Cd8a") + ggtitle("Cd8a")
fplot_2 <- fplot(so, reduction="umap", features="Cd4") + ggtitle("Cd4")
fplot_3 <- fplot(so, reduction="umap", features="H2-Eb1") + ggtitle("H2-Eb1 (MHC II)")
fplot_4 <- fplot(so, reduction="umap", features="Ms4a3") + ggtitle("Ms4a3") # GMP
fplot_5 <- fplot(so, reduction="umap", features="Cx3cr1") + ggtitle("Cx3cr1") # Macrophage DC progenitor (MDP) derived
fplot_6 <- fplot(so, reduction="umap", features="Csf1r") + ggtitle("Csf1r") # Macrophage DC progenitor (MDP) derived
fplot_7 <- fplot(so, reduction="umap", features="Irf8") + ggtitle("Irf8") # Macrophage specification
fplot_8 <- fplot(so, reduction="umap", features="Nr1h3") + ggtitle("Nr1h3") # Macrophage specification
fplot_9 <- fplot(so, reduction="umap", features="Spic") + ggtitle("Spic") # Macrophage specification
fplot_10 <- fplot(so, reduction="umap", features="Sell") + ggtitle("CD62L") # Macrophage specification
fplot_11 <- fplot(so, reduction="umap", features="Esam") + ggtitle("Esam")
fplot_12 <- fplot(so, reduction="umap", features="Itgam") + ggtitle("Itgam (CD11b)") #CD11b
dplot_comb <- fplot_1 + fplot_2 + fplot_3 + fplot_4 + fplot_5 + fplot_6 + fplot_7 + fplot_8 + fplot_9 + fplot_10 + fplot_11 + fplot_12 + plot_layout(ncol=4)
dplot_comb
# dea <- lapply(sort(unique(so$seurat_clusters)), function(seurat_clusters) {FindConservedMarkers(so, ident.1=seurat_clusters, grouping.var="treatment", assay="RNA", slot="data", test.use="wilcox")})
# saveRDS(dea, "result/annotation/dea_leiden_wilcox.rds")
dea <- readRDS("result/annotation/dea_leiden_wilcox.rds")
options(repr.plot.width=25, repr.plot.height=50)
names(dea) <- paste("Cluster", 1:length(dea)-1)
cmdp <- lapply(names(dea), function(title) {conserved_markers_dp(dea[[title]], title=title, n_top=50, filter="pos_only")})
wrap_plots(cmdp, ncol=5)
Loading required package: magrittr
Attaching package: ‘magrittr’
The following object is masked from ‘package:purrr’:
set_names
The following object is masked from ‘package:tidyr’:
extract
cluster_to_cell_type <- data.frame(
seurat_clusters=c(
"0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12",
"13"
),
cell_type=c(
"Ery (5)",
"Ery (4)",
"Ery (1)",
"MEP",
"MDP (1)",
"Ery (3)",
"DC CD8-",
"Ery (2)",
"MDP (2)",
"DC CD8+",
"MDP (3)",
"GMP (2)",
"RPM",
"GMP (1)"
)
)
cluster_to_cell_type <- dplyr::left_join(so@meta.data, cluster_to_cell_type, by="seurat_clusters") %>%
dplyr::mutate(cell_id=rownames(so@meta.data)) %>%
tibble::column_to_rownames("cell_id") %>%
dplyr::select(cell_type)
so <- AddMetaData(so, cluster_to_cell_type)
options(repr.plot.width=20, repr.plot.height=5)
dplot_1 <- dplot(so, reduction="umap", group_by="seurat_clusters", label=TRUE) + ggtitle("Leiden")
dplot_2 <- dplot(so, reduction="umap", group_by="cell_type") # + scale_color_manual(values=color$leiden_annotation) + ggtitle("Annotation")
dplot_comb <- dplot_1 + dplot_2 + plot_layout(ncol=2)
dplot_comb
expression_data <- GetAssayData(so, assay="RNA", slot="counts")
cell_metadata <- so@meta.data
cell_metadata$sample_name <- NULL
cds <- new_cell_data_set(expression_data=expression_data , cell_metadata=cell_metadata)
# Set gene names for plotting
rowData(cds)$gene_name <- rownames(cds)
rowData(cds)$gene_short_name <- rowData(cds)$gene_name
options(repr.plot.width=5, repr.plot.height=5)
cds <- preprocess_cds(cds, num_dim=100)
cds <- align_cds(cds, alignment_group="sample_group", alignment_k=20, residual_model_formula_str="~ nCount_RNA + pMt_RNA")
Aligning cells from different batches using Batchelor. Please remember to cite: Haghverdi L, Lun ATL, Morgan MD, Marioni JC (2018). 'Batch effects in single-cell RNA-sequencing data are corrected by matching mutual nearest neighbors.' Nat. Biotechnol., 36(5), 421-427. doi: 10.1038/nbt.4091
options(repr.plot.width=25, repr.plot.height=15)
cds <- reduce_dimension(cds, reduction_method="UMAP", preprocess_method='Aligned', umap.n_neighbors=20)
cds <- cluster_cells(cds, cluster_method="leiden", k=20)
dplot_1 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="treatment", group_label_size=5, show_trajectory_graph=FALSE) + ggtitle("Treatment")
dplot_2 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="cc_phase_class", group_label_size=5, show_trajectory_graph=FALSE) + ggtitle("cc_phase_class")
dplot_3 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="cell_type", group_label_size=5, show_trajectory_graph=FALSE) + ggtitle("Cell type (Seurat)")
dplot_4 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="cluster", group_label_size=5, show_trajectory_graph=FALSE) + ggtitle("Monocle cluster")
dplot_5 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="partition", group_label_size=5, show_trajectory_graph=FALSE) + ggtitle("Partition")
dplot_6 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Gata2", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_7 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Gata1", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_8 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Epor", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_9 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Tfrc", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_10 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Icam4", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_11 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Cd4", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_12 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Cd8a", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_13 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Itgam", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_14 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Esam", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_15 <- plot_cells(cds, label_groups_by_cluster=FALSE, genes="Foxp3", scale_to_range=FALSE, show_trajectory_graph=FALSE) + theme(aspect.ratio=1, legend.position="none")
dplot_1 + dplot_2 + dplot_3 + dplot_4 + dplot_5 + dplot_6 + dplot_7 + dplot_8 + dplot_9 + dplot_10 + dplot_11 + dplot_12 + dplot_13 + dplot_14 + dplot_15 + plot_layout(ncol=5)
cds <- learn_graph(cds)
|======================================================================| 100% |======================================================================| 100% |======================================================================| 100% |======================================================================| 100%
options(repr.plot.width=25, repr.plot.height=5)
dplot_1 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="treatment", group_label_size=5) + ggtitle("Treatment")
dplot_2 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="cc_phase_class", group_label_size=5) + ggtitle("cc_phase_class")
dplot_3 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="cell_type", group_label_size=5) + ggtitle("Cell type (Seurat)")
dplot_4 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="cluster", group_label_size=5) + ggtitle("Monocle cluster")
dplot_5 <- plot_cells(cds, label_groups_by_cluster=FALSE, color_cells_by="partition", group_label_size=5) + ggtitle("Partition")
dplot_1 + dplot_2 + dplot_3 + dplot_4 + dplot_5 + plot_layout(ncol=5)
saveRDS(so, so_pp_file)
sessionInfo()
R version 4.1.0 (2021-05-18) Platform: x86_64-conda-linux-gnu (64-bit) Running under: Red Hat Enterprise Linux 8.2 (Ootpa) Matrix products: default BLAS/LAPACK: /home/fdeckert/bin/miniconda3/envs/r.4.1.0-FD20200109SPLENO/lib/libopenblasp-r0.3.15.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats4 stats graphics grDevices utils datasets methods [8] base other attached packages: [1] magrittr_2.0.3 Matrix_1.4-1 [3] patchwork_1.1.1 RColorBrewer_1.1-3 [5] forcats_0.5.1 stringr_1.4.0 [7] dplyr_1.0.9 purrr_0.3.4 [9] readr_2.1.2 tidyr_1.2.0 [11] tibble_3.1.7 ggplot2_3.3.6 [13] tidyverse_1.3.1 SingleR_1.8.1 [15] monocle3_1.0.0 SingleCellExperiment_1.16.0 [17] SummarizedExperiment_1.24.0 GenomicRanges_1.46.1 [19] GenomeInfoDb_1.30.1 IRanges_2.28.0 [21] S4Vectors_0.32.4 MatrixGenerics_1.6.0 [23] matrixStats_0.62.0 Biobase_2.54.0 [25] BiocGenerics_0.40.0 sp_1.4-7 [27] SeuratObject_4.1.0 Seurat_4.1.1 loaded via a namespace (and not attached): [1] utf8_1.2.2 reticulate_1.24 [3] tidyselect_1.1.2 htmlwidgets_1.5.4 [5] grid_4.1.0 BiocParallel_1.28.3 [7] Rtsne_0.16 munsell_0.5.0 [9] ScaledMatrix_1.2.0 codetools_0.2-18 [11] ica_1.0-2 pbdZMQ_0.3-7 [13] future_1.25.0 miniUI_0.1.1.1 [15] batchelor_1.10.0 withr_2.5.0 [17] spatstat.random_2.2-0 colorspace_2.0-3 [19] progressr_0.10.0 highr_0.9 [21] knitr_1.39 uuid_1.1-0 [23] rstudioapi_0.13 ROCR_1.0-11 [25] tensor_1.5 listenv_0.8.0 [27] labeling_0.4.2 repr_1.1.4 [29] GenomeInfoDbData_1.2.7 polyclip_1.10-0 [31] farver_2.1.0 parallelly_1.31.1 [33] vctrs_0.4.1 generics_0.1.2 [35] xfun_0.30 R6_2.5.1 [37] rsvd_1.0.5 bitops_1.0-7 [39] spatstat.utils_2.3-0 DelayedArray_0.20.0 [41] assertthat_0.2.1 promises_1.2.0.1 [43] scales_1.2.0 rgeos_0.5-9 [45] gtable_0.3.0 beachmat_2.10.0 [47] Cairo_1.5-15 globals_0.14.0 [49] goftest_1.2-3 rlang_1.0.2 [51] systemfonts_1.0.4 splines_4.1.0 [53] lazyeval_0.2.2 spatstat.geom_2.4-0 [55] broom_0.8.0 reshape2_1.4.4 [57] abind_1.4-5 modelr_0.1.8 [59] backports_1.4.1 httpuv_1.6.5 [61] tools_4.1.0 kableExtra_1.3.4 [63] ellipsis_0.3.2 spatstat.core_2.4-2 [65] proxy_0.4-26 ggridges_0.5.3 [67] Rcpp_1.0.8.3 plyr_1.8.7 [69] base64enc_0.1-3 sparseMatrixStats_1.6.0 [71] zlibbioc_1.40.0 RCurl_1.98-1.6 [73] rpart_4.1.16 deldir_1.0-6 [75] pbapply_1.5-0 viridis_0.6.2 [77] cowplot_1.1.1 zoo_1.8-10 [79] haven_2.5.0 ggrepel_0.9.1 [81] cluster_2.1.3 fs_1.5.2 [83] data.table_1.14.2 RSpectra_0.16-1 [85] scattermore_0.8 ResidualMatrix_1.4.0 [87] lmtest_0.9-40 reprex_2.0.1 [89] RANN_2.6.1 fitdistrplus_1.1-8 [91] hms_1.1.1 mime_0.12 [93] evaluate_0.15 xtable_1.8-4 [95] readxl_1.4.0 gridExtra_2.3 [97] compiler_4.1.0 KernSmooth_2.23-20 [99] crayon_1.5.1 htmltools_0.5.2 [101] mgcv_1.8-40 later_1.3.0 [103] tzdb_0.3.0 lubridate_1.8.0 [105] DBI_1.1.2 dbplyr_2.1.1 [107] MASS_7.3-57 leidenbase_0.1.11 [109] cli_3.3.0 parallel_4.1.0 [111] igraph_1.3.1 pkgconfig_2.0.3 [113] scuttle_1.4.0 IRdisplay_1.1 [115] plotly_4.10.0 spatstat.sparse_2.1-1 [117] xml2_1.3.3 svglite_2.1.0 [119] webshot_0.5.3 XVector_0.34.0 [121] rvest_1.0.2 digest_0.6.29 [123] sctransform_0.3.3 RcppAnnoy_0.0.19 [125] spatstat.data_2.2-0 rmarkdown_2.14 [127] cellranger_1.1.0 leiden_0.3.10 [129] uwot_0.1.11 DelayedMatrixStats_1.16.0 [131] shiny_1.7.1 lifecycle_1.0.1 [133] nlme_3.1-157 jsonlite_1.8.0 [135] BiocNeighbors_1.12.0 limma_3.50.3 [137] viridisLite_0.4.0 fansi_1.0.3 [139] pillar_1.7.0 lattice_0.20-45 [141] fastmap_1.1.0 httr_1.4.3 [143] survival_3.3-1 glue_1.6.2 [145] png_0.1-7 stringi_1.7.6 [147] BiocSingular_1.10.0 IRkernel_1.3 [149] irlba_2.3.5 future.apply_1.9.0